#ifndef TIRE_H
#define TIRE_H
#include "entity.h"
#include <header.h>
/***********************************************************************/
/*************不要尝试修改这里面的任何东西，改了会报错*********************/
/**********************************************************************/

/**
 * TIRE_LEN最少给需要存储tire树的所有字母的长度，因为son存储的是idx虚拟地址
*/
#define TIRE_LEN 50

/**
 * 0号点即是根节点，又是空节点
 * son[][]存储树中每个节点的子节点
*/
extern int son[TIRE_LEN][26];

/* cnt[]存储以每个节点结尾对印的关键字的cmd */
extern CmdType cnt[TIRE_LEN];

/* 虚拟地址 */
extern int idx;

/**
 * @brief 在tire树中插入一个字符串
 * 
*/
void insert(const char* str, int len, CmdType type);

/**
 * @brief 在tire树中查询
 * @return 返回对应的CmdType,不存在返回-1
*/
int query(const char* str, int len);

/**
 * @brief 初始化tire树
 * 
*/ 
void initTire();

#endif
